/**
 * 
 */
package com.googlecode.hmvc4gwt.example.hmvcblog.service.gwtrpc.client.blog;

import java.util.List;
import java.util.Set;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogEditDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogEditIdDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogNewDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogPreviewDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogRemoveDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogUpdateDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.dashboard.UserBlogTitleDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.user.UserSessionId;

/**
 * 
 * @author jens.meiss
 */
public interface IBlogRemoteServiceAsync {

	public void addBlog(BlogNewDTO blogNewDTO, AsyncCallback<Void> callback);
	
	public void getBlog(Integer id, AsyncCallback<BlogDTO> callback);
	
	public void getBlog(String name, AsyncCallback<BlogDTO> callback);
	
	public void removeBlog(BlogRemoveDTO blogRemoveDTO, AsyncCallback<Void> callback);
	
	public void getSetBlogPreview(AsyncCallback<Set<BlogPreviewDTO>> callback);
	
	public void getListBlogTitleDTO(UserSessionId userSessionId, AsyncCallback<List<UserBlogTitleDTO>> callback);

	public void getEditBlogDTO(BlogEditIdDTO blogEditIdDTO,	AsyncCallback<BlogEditDTO> callback);
	
	public void update(BlogUpdateDTO blogUpdateDTO, AsyncCallback<Void> callback);
	
}
